# 第四周作业
#
# 通过 Python 编程完成一个银行 ATM 机模拟系统，具备如下功能:
#
# (1)登陆验证：用户输入用户名密码登陆，检测用户名是否存在以及用户名密码是否匹配；用户名密码共有三次输入机会，超过三次系统退出。
#
# (2)菜单界面：登陆成功后显示功能操作界面，输入序号选择对应功能。
#
# (3)用户注册：用户可以输入用户名和密码创建自己的账号，并输入电话号码等信息，如果用户名存在则让用户重新输入用户名。注册后免费赠送 5000 元余额。
#
# (4)账户管理：用户可以随时查看自己的账户余额。用户可以输入其他账户用户名，实现转账功能；转账时用户名必须存在，否则提示异常。用户也可以模拟实现存取款功能。
#
# (5)用户名和密码以及账户信息等必须永久保存。且基于命令行完成，不需要开发 GUI 界面。
# https://its203.com/article/sinat_37448552/77604537

import pymysql

conn = pymysql.connect(host='172.31.7.101', port=3306, user='zhgedu',
                       passwd='zhgedu', db='test', charset="utf8")  # 连接mysql数据库
cursor = conn.cursor()  # 获取游标来进行查询

##########创建数据表用来存放用户信息###########
sql = '''CREATE TABLE IF NOT EXISTS userinfoes (
         user  VARCHAR(20),
         password  VARCHAR(6),
         age VARCHAR(3),  
         sex VARCHAR(5),
         mobile VARCHAR(11),
         balance FLOAT(12,2))'''
cursor.execute(sql)
sql2 = '''INSERT INTO userinfoes(user,
         password,age,sex,mobile,balance)
         VALUES ('luu','123456','19','woman','12345678900',10000)'''
cursor.execute(sql2)


while True:
    print("##########判断用户名########## ")
    username2 = input("请按回车，在输入用户:")
    k = 3
    while k:
        global username
        username = input()
        userinfoes = "SELECT * FROM userinfoes WHERE user='%s'" % username  # 查询该用户是否存在
        j = cursor.execute(userinfoes)  # 满足该条件的数据条数
        if username == '':
            print("用户名不能为空")
        elif j == 2:
            print("##########判断密码##########")
            while True:
                password3 = input("请按回车，在输入密码:")
                k = 3
                while k:
                    password = input()
                    userinfoes = "SELECT * FROM userinfoes WHERE  password='%s'" % password  # 查询输入的密码是否与用户匹配
                    j = cursor.execute(userinfoes)

                    if password == '':
                        print("密码不能为空")
                    elif j == 2:
                        conn.close()
                        cursor.close()
                        exit()
                    elif j == 0:
                        k -= 1
                        if k != 0:
                            print("密码错误，请重新输入：")
                        else:
                            print("你已输错三次！")
                            conn.close()
                            cursor.close()
                            exit()
                    else:
                        print("恭喜你，登录成功！！")
                        break
        elif j == 0:  # elif实现多分枝,假设juu为0
            k -= 1  # 依次递减
            if k != 0:  # k不等于0，则报错
                print("用户名错误，请重新输入：")
            else:
                print("你已输错三次！")
                conn.close()
                cursor.close()
                exit()
        else:
            break

# 前期可以不用数据库，主要考察基础数据类型的操作
